module.exports = {
  // 翻译函数配置
  translation: {
    // 翻译库类型: 'next-intl', 'react-intl', 'i18next', 'custom'
    library: "custom",
    // 是否自动添加翻译函数引入
    autoImport: true,
  },

  // 页面配置列表
  pages: [
    {
      // 页面1: 项目仪表板
      files: ["web/src/pages/project/[projectId]/index.tsx"],
      replacements: {
        // 1. 普通精确匹配：直接匹配完整的字符串
        // 适用场景：JSX属性、对象属性等
        // 示例：'title="Hello"': 'title={t("hello")}'
        'title: "Home"': 'title: t("pages.dashboard.title")',
        'title="Environment"':
          'title={t("pages.dashboard.filters.environment")}',
        'label="Env"': 'label={t("pages.dashboard.filters.env")}',
        'title="Request Chart"': 'title={t("pages.dashboard.feedback.title")}',
        'description="Your feedback matters! Let the Langfuse team know what additional data or metrics you\'d like to see in your dashboard."':
          'description={t("pages.dashboard.feedback.description")}',

        // 2. 使用 ^ 前缀：忽略缩进匹配（适用于不同开发环境的缩进差异）
        // 适用场景：JSX文本内容，不同开发环境缩进不同 例如标签内文字
        // 原代码：          <button>    Request Chart    </button>
        // 配置：^Request Chart
        // 结果：              {t("pages.dashboard.feedback.button")}
        "^Request Chart": '{t("pages.dashboard.feedback.button")}',

        // 3. 使用 \n 前缀：多行字符串匹配（忽略缩进）
        // 适用场景：多行文本或属性
        // 原代码：
        //              This is a very long text that spans multiple lines
        //              and needs to be localized properly while maintaining
        //              the original formatting and indentation.
        // 配置：\nThis is a very long text that spans multiple lines\nand needs to be localized properly while maintaining\nthe original formatting and indentation.
        // 结果：
        //              {t("pages.dashboard.feedback.longText")}
        "\\nThis is a very long text that spans multiple lines\nand needs to be localized properly while maintaining\nthe original formatting and indentation.":
          '{t("pages.dashboard.feedback.longText")}',
      },
    },
    {
      // 页面2: 评分页面
      files: ["web/src/pages/project/[projectId]/scores.tsx"],
      replacements: {
        // 普通精确匹配
        'title: "Scores"': 'title: t("pages.scores.title")',

        // 4. 使用 \n 前缀：多行属性匹配（包含属性名和换行）
        // 适用场景：对象属性，包含换行和缩进
        // 原代码：
        // description:
        //   "A scores is an evaluation of a traces or observations. It can be created from user feedback, model-based evaluations, or manual review. See docs to learn more."
        // 配置：\ndescription:\n  "A scores is an evaluation of a traces or observations. It can be created from user feedback, model-based evaluations, or manual review. See docs to learn more."
        // 结果：
        // description: t("pages.scores.description")
        '\\ndescription:\n  "A scores is an evaluation of a traces or observations. It can be created from user feedback, model-based evaluations, or manual review. See docs to learn more."':
          'description: t("pages.scores.description")',

        'href: "https://langfuse.com/docs/scores"':
          'href: t("pages.scores.helpUrl")',
      },
    },
    // 可以添加更多页面配置
  ],

  // 全局配置（可选）
  global: {
    // 全局替换规则，会应用到所有页面
    replacements: {
      // 可以添加一些通用的替换规则
      // 'Loading...': '{t("common.loading")}',
      // 'Error': '{t("common.error")}',
    },
  },
};

/*
使用说明：

1. 普通精确匹配：
   - 适用场景：JSX属性、对象属性等
   - 示例：'title="Hello"': 'title={t("hello")}'
   - 注意：必须完全匹配，包括引号类型

2. ^ 前缀（忽略缩进）：
   - 适用场景：JSX文本内容，不同开发环境缩进不同
   - 示例：'^Hello World': '{t("hello.world")}'
   - 原代码：              Hello World
   - 结果：              {t("hello.world")}

3. \n 前缀（多行匹配）：
   - 适用场景：多行文本或属性
   - 多行文本示例：
     '\\nLine 1\nLine 2\nLine 3': '{t("multiline.text")}'
   - 多行属性示例：
     '\\nproperty:\n  "value"': 'property: t("property.value")'

4. 配置技巧：
   - 配置中的 key 必须是原文件中存在的完整字符串
   - 配置中的 value 是替换后的完整字符串
   - 脚本会自动处理缩进保持
   - 脚本会自动添加 t 函数引入（如果配置了 autoImport: true）

5. 常见模式：
   - JSX属性：'attr="text"': 'attr={t("key")}'
   - 对象属性：'key: "value"': 'key: t("key")'
   - JSX文本：'^Text': '{t("key")}'
   - 多行文本：'\\nLine1\nLine2': '{t("key")}'
   - 多行属性：'\\nkey:\n  "value"': 'key: t("key")'

6. 注意事项：
   - 配置中的字符串必须使用单引号或双引号，不能使用反引号
   - 多行字符串中的换行符使用 \n 表示
   - 特殊字符（如引号）需要转义
   - 脚本会保持原有的缩进格式
*/
